package demoobj;

/**
 * @author: knowno
 * @create: 2025-09-12 10:16
 * @Version 1.0
 **/
public class TestObject {
    public static void main(String[] args) {

        //学习Object类的常见方法
        //1 无参数构造
        Object o = new Object();

        //2 toString方法
        // public static String valueOf(Object obj) {
        //        return (obj == null) ? "null" : obj.toString();
        //    }
        //return getClass().getName() + "@" + Integer.toHexString(hashCode());
        System.out.println(o.toString());
        System.out.println(o);

        //3 hashCode方法
        System.out.println(o.hashCode());

        //4 equals方法
        Object o1 = new Object();
        //public boolean equals(Object obj) {
        //        return (this == obj);
        //    }
        System.out.println(o.equals(o1));//false

        //字符串 ->字符串中对equals方法进行了重写,比较的是字符串内容
        String s1 = "hello";
        String s2 = "hello";
        System.out.println(s1.equals(s2));//true


        //5 getClass方法
        // public final native Class<?> getClass();
        //java.lang.Object
        System.out.println(o.getClass());

        //clone()
        //创建并返回此对象的副本。
        //'clone()' has protected access in 'java.lang.Object'
//        o.clone();
    }
}
